1. Field of the Invention
The present invention relates to an improved data processing system and, in particular, to a method and system for displaying graphical objects. Still more particularly, the present invention provides a method and system for rendering graphical objects in a three-dimensional operator interface or graphical user interface (GUI) environment.
2. Description of Related Art
A windowing metaphor is commonly used in graphical user interfaces of modern computer systems. The use of windows allows multiple application programs to simultaneously represent more than one set of display data on a single computer monitor. A graphical user interface typically allocates at least one display window on the computer screen for each executing application program.
Most windowing systems manage the limited resource of screen space by manipulating a so-called two-and-one-half (2½D) dimensional presentation space in which the presentation space has dimensions of horizontal and vertical coordinates (x-dimension and y-dimension) as well as an order for overlapping windows along a pseudo-vertical dimension (z-order). The windowing system maintains state information about the windows as planar objects within the presentation space. Typically, the windows may be moved by a user, which translates the window objects in the x-dimension and/or y-dimension. In addition, the user may change the z-order of the windows by selecting a window, thereby giving the so-called “focus” to a window and moving the selected window to the top of the z-order. In these windowing systems, the windows cannot be rotated within the presentation space.
The operating system software of a computer system typically contains embedded windowing software or graphical user interface software that manages the resulting set of possibly overlapping rectangular windows, thereby allowing application programs to draw on the portions of their windows that are visible, i.e., not obscured, clipped, or occluded by the screen extents of other windows. The operating system typically notifies application programs when portions of their windows become exposed and need to be repainted or redrawn. In some cases, application programs may request that a window manager program within the operating system handle these events directly from an off-screen memory such that the window manager program saves hidden portions of windows within the off-screen memory.
Over time, computer systems have increased the number of simultaneously supportable application programs, which also increased the number of windows likely to be shown on a user's screen at any given time. Moreover, each application program may have support for multiple open windows at any given time. Hence, the amount of information that may be displayed on a computer screen at any given time has continued to increase, which could potentially overload a user cognitively. As a result, graphical user interfaces have become more sophisticated in the manner in which the information is presented to the user. Various visual effects have been incorporated into graphical user interfaces that mimic visual effects to which a user is accustomed in the real world, thereby providing intuitive visual clues for the user that assists in the comprehension of the presented information. Typically, the windowing system or the operating system automatically provides these visual effects such that a developer of an application program does not need to be concerned with creating these visual effects.
Some graphical user interfaces have become quite sophisticated. By using many well-known computer imaging techniques, these graphical user interfaces have created full three-dimensional presentation spaces in which a user can manipulate graphical objects in a simulated three-dimensional environment. While these types of graphical user interfaces may be slightly more spatially intuitive for a user, any information must still be presented using some form of metaphor, and the computer skills of most users are not sophisticated enough to feel that these interfaces are useful. Moreover, these interfaces are computationally expensive to generate, thereby requiring computation resources that far exceed the computational resources of the common tasks of most users.
As a result, some common techniques from computer-generated-imaging (CGI) have been adapted for use within the graphical user interfaces that are employed on most computer systems. By adapting these techniques, the computational requirements can be reduced while still providing the benefits of intuitive visual effects.
For example, one category of visual effects that has been used within graphical user interfaces is lighting/shading. By simulating a light source within the presentation space of a graphical user interface and then lighting and/or shading various graphical objects within the graphical user interface, a subtle three-dimensional effect can be created that tends to emphasize or de-emphasize one or more objects that are shown on a computer display. A common use of this technique is to simulate thickness to a selectable button, and as a user selects the button, the graphical user interface simulates that the user is pressing the button.
Drop shadows are another form of lighting/shading that has been used within many graphical user interfaces. By simulating a light source within the presentation space of a graphical user interface and then generating a shadow that is slightly displaced beneath a graphical object, the graphical object can be made to appear as if it is floating slightly above another graphical object.
Another form of visual effect that has been introduced within some graphical user interfaces is the ability of a user to move a graphical object or window in a simulated vertical dimension, i.e. to translate a graphical object along a z-dimension within the presentation space of the graphical user interface. When the user alters the z-depth of a graphical object, the graphical user interface automatically resizes the selected graphical object to simulate the perceptual effects of distance. If the user moves the graphical object forward, i.e. pulls the graphical object toward the user along a z-axis in the presentation space of the graphical user interface, the graphical object grows in size, thereby requiring more screen space and cognitively emphasizing the graphical object to the user. If the user moves the graphical object backward, i.e. pushes the graphical object away from the user along a z-axis in the presentation space of the graphical user interface, the graphical object shrinks in size, thereby cognitively de-emphasizing the graphical object to the user.
Hence, a simplified, less computationally expensive, three-dimensional, graphical user interface can be provided in which the user is able to translate graphical objects in a z-direction without requiring the windowing system to fully simulate a three-dimensional presentation space in which the user can rotate objects within the simulated three-dimensional space or in which other three-dimensional computer-generated-imaging effects are simulated. By manipulating the z-depth of a graphical object, a user essentially zooms in or zooms out on the selected graphical object.
The amount of computational effort that is required to produce simple lighting/shading effects or drop shadows in a two-and-a-half-dimensional graphical user interface is minimal. Simplified three-dimensional graphical user interfaces can be created in which computational costs are minimized by including only certain visual effects. If the contents of a selected graphical object are enlarged or reduced in real-time during the operation of zooming in and out on the graphical object, the zooming operation may be computationally expensive, but after the zooming operation is completed, there are no additional computational costs to display the graphical object than would be required within a simpler two-and-a-half-dimensional graphical user interface.
While it is desirable to include shadowing effects within a three-dimensional graphical user interface, it is generally computationally prohibitive to do so. In order for the shadows to appear somewhat realistic, it would be necessary for the windowing system to perform some type of ray tracing operations in conjunction with the simulated light source, and ray tracing operations are very computationally expensive.
Therefore, it would be advantageous to provide some form of shadow effect within a three-dimensional presentation space of a graphical user interface such that the shadow effect enhances a user's intuitive understanding of the presentation space. It would be particular advantageous to provide a shadow effect within a three-dimensional presentation space of a graphical user interface that is computationally inexpensive, and more particularly, to provide a shadow effect within a three-dimensional presentation space of a graphical user interface that is similar to a drop shadow effect with which a user is familiar in a two-and-a-half-dimensional graphical user interface.